{$CLEO .qa}
{$USE CLEO+}
{$USE newOpcodes}
{$USE ini}

0000: NOP

script_name "INTREQ2"

// By ArtemQa146

const
    ped_1 = 31@
    ped_2 = 30@
    ped_3 = 29@
    ped_4 = 28@
    ped_5 = 27@
    progress = 26@
    sweep = 25@
    sponge = 24@
    render_1 = 23@
    render_S = 22@
    event = 21@
    sprite = 20@
end

0085: sweep = 0@ // (int)

            repeat
            wait 0
            04ED: load_animation  "PedEventsMod"
            until 04EE:   animation "PedEventsMod" loaded

            repeat
            wait 0
            04ED: load_animation  "shop"
            until 04EE:   animation "shop" loaded

            model.Load(233)
            model.Load(93)
            model.Load(2880)
            model.Load(1514)
            if
                not model.Available(233)
            then
                repeat
                wait 0
                model.Load(233)
                until model.Available(233)
            end
            if
                not model.Available(93)
            then
                repeat
                wait 0
                model.Load(93)
                until model.Available(93)
            end
            if
                not model.Available(2880)
            then
                repeat
                wait 0
                model.Load(2880)
                until model.Available(2880)
            end
            if
                not model.Available(1514)
            then
                repeat
                wait 0
                model.Load(1514)
                until model.Available(1514)
            end
            038B: load_requested_models
            event = false

            0E40: get_current_hour 1@
            if and
                1@ >= 7
                1@ < 19
            then

                event = true

                // ped 1

                009A: ped_1 = create_actor_pedtype 5 model 93 at 455.5807 -105.5627 999.5547
                0173: set_actor ped_1 Z_angle_to 180.0
                0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_1 perform_animation "liquor_cas" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


                // ped 2

                0376: ped_2 = create_random_actor_at 448.6017 -109.7617 1000.0781
                0173: set_actor ped_2 Z_angle_to 260.0
                0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_2 perform_animation "restql_seat" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB

                0209: 1@ = random_int_in_ranges 0 2
                0209: 2@ = random_int_in_ranges 0 2
                0209: 3@ = random_int_in_ranges 0 2


                // ped 3

                if 1@ == 1
                then
                    0376: ped_3 = create_random_actor_at 451.9683 -111.0385 1000.0781
                    0173: set_actor ped_3 Z_angle_to 260.0
                else
                    0376: ped_3 = create_random_actor_at 447.5113 -109.6515 1000.0781
                    0173: set_actor ped_3 Z_angle_to 90.0
                end

                0E24: fix_char ped_3 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_3 perform_animation "restql_seat" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


                // ped 4

                if 2@ == 1
                then
                    0376: ped_4 = create_random_actor_at 454.9194 -109.3795 1000.0781
                    0173: set_actor ped_4 Z_angle_to 260.0
                else
                    0376: ped_4 = create_random_actor_at 450.6718 -109.6265 1000.0781
                    0173: set_actor ped_4 Z_angle_to 90.0
                end

                0E24: fix_char ped_4 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_4 perform_animation "restql_seat" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


                // ped 5

                if 3@ == 1
                then
                    0376: ped_5 = create_random_actor_at 442.6009 -110.7479 1000.0781
                    0173: set_actor ped_5 Z_angle_to 260.0
                else
                    0376: ped_5 = create_random_actor_at 444.4808 -111.0521 1000.0781
                    0173: set_actor ped_5 Z_angle_to 88.5546
                end

                0E24: fix_char ped_5 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_5 perform_animation "restql_seat" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


                0E2E: create_render_object_to_char_bone ped_1 model 2880 bone 34 offset 0 0 0 rotation 0 0 0 store_to render_S
                0E37: set_render_object_scale render_S 0.8 0.8 0.8
                0E31: set_render_object_visible render_S 0
                0E2E: create_render_object_to_char_bone ped_2 model 2880 bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@
                0E37: set_render_object_scale 1@ 0.8 0.8 0.8
                0E2E: create_render_object_to_char_bone ped_5 model 2880 bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@
                0E37: set_render_object_scale 1@ 0.8 0.8 0.8
                0E2E: create_render_object_to_char_bone ped_3 model 2880 bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@
                0E37: set_render_object_scale 1@ 0.8 0.8 0.8
                0E2E: create_render_object_to_char_bone ped_4 model 2880 bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@
                0E37: set_render_object_scale 1@ 0.8 0.8 0.8

            else

                // ped 1

                0209: 1@ = random_int_in_ranges 0 2

                009A: ped_1 = create_actor_pedtype 5 model 93 at 456.2807 -105.5627 999.5547
                0173: set_actor ped_1 Z_angle_to 180.0

                0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_1 perform_animation "SHP_SERVE_LOOP" IFP "shop" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


                // ped 2

                0209: 1@ = random_int_in_ranges 0 2

                009A: ped_2 = create_actor_pedtype 4 model 233 at 454.9456 -107.8073 999.5547
                0173: set_actor ped_2 Z_angle_to 98.0

                0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_2 perform_animation "Sweep" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                0F02: create_render_object_to_char_bone_from_special ped_2 special_model sweep bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@


                // ped 3

                009A: ped_3 = create_actor_pedtype 5 model 233 at 447.1428 -107.8091 999.5547
                0173: set_actor ped_3 Z_angle_to 260.0

                0E24: fix_char ped_3 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_3 perform_animation "Sweep" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                0F02: create_render_object_to_char_bone_from_special ped_3 special_model sweep bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@


                // ped 4

                if 2@ == 1
                then
                    0376: ped_4 = create_random_actor_at 454.9194 -109.3795 1000.0781
                    0173: set_actor ped_4 Z_angle_to 260.0
                else
                    0376: ped_4 = create_random_actor_at 450.6718 -109.6265 1000.0781
                    0173: set_actor ped_4 Z_angle_to 90.0
                end

                0E24: fix_char ped_4 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_4 perform_animation "restql_seat2" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


                // ped 5

                if 3@ == 1
                then
                    0376: ped_5 = create_random_actor_at 442.6009 -110.7479 1000.0781
                    0173: set_actor ped_5 Z_angle_to 260.0
                else
                    0376: ped_5 = create_random_actor_at 444.4808 -111.0521 1000.0781
                    0173: set_actor ped_5 Z_angle_to 88.5546
                end

                0E24: fix_char ped_5 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_5 perform_animation "restql_seat2" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB

            end


            0860: link_actor ped_1 to_interior 5
            0860: link_actor ped_2 to_interior 5
            0860: link_actor ped_3 to_interior 5
            0860: link_actor ped_4 to_interior 5
            0860: link_actor ped_5 to_interior 5

            0E01: create_object_no_save 1514 at 456.2487 -106.2869 999.8047 offset 0 ground 0 to sprite
            0177: set_object sprite Z_angle_to 0.0
            07F7: set_object sprite destructible 0

            model.Destroy(233)
            model.Destroy(93)
            model.Destroy(2880)
            model.Destroy(1514)
            04EF: release_animation "PedEventsMod"
            04EF: release_animation "shop"

            1@ = 0
            timera = 0

            repeat
            wait 0
            if and
                056D:   actor ped_1 defined
                056D:   actor ped_2 defined
                056D:   actor ped_3 defined
                056D:   actor ped_4 defined
                056D:   actor ped_5 defined
            then

                if
                    not $ACTIVE_INTERIOR == 5
                then
                    break
                end


                if or
                    051A:   actor ped_1 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_2 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_3 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_4 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_5 damaged_by_actor $PLAYER_ACTOR
                then
                    break
                end


                if or
                    not locate_char_distance_to_coordinates $player_actor pos 452.2912 -106.9859 999.5547 radius 100.0
                    0118:   actor ped_1 dead
                    0118:   actor ped_2 dead
                    0118:   actor ped_3 dead
                    0118:   actor ped_4 dead
                    0118:   actor ped_5 dead
                then
                    break
                end
                
                080E: get_actor ped_1 ped_event_to 1@
                080E: get_actor ped_2 ped_event_to 2@
                if or
                    1@ == 15
                    1@ == 31
                    1@ == 59
                    2@ == 15
                    2@ == 31
                    2@ == 59
                then
                    break
                end

                080E: get_actor ped_3 ped_event_to 1@
                080E: get_actor ped_4 ped_event_to 2@
                if or
                    1@ == 15
                    1@ == 31
                    1@ == 59
                    2@ == 15
                    2@ == 31
                    2@ == 59
                then
                    break
                end

                080E: get_actor ped_5 ped_event_to 1@
                if or
                    1@ == 15
                    1@ == 31
                    1@ == 59
                then
                    break
                end

                080E: get_actor ped_1 ped_event_to 1@
                080E: get_actor ped_2 ped_event_to 2@
                080E: get_actor ped_3 ped_event_to 3@
                if or
                    1@ == 49
                    1@ == 9
                    2@ == 49
                    2@ == 9
                    3@ == 49
                    3@ == 9
                then
                    break
                end

                080E: get_actor ped_4 ped_event_to 1@
                080E: get_actor ped_5 ped_event_to 2@
                if or
                    1@ == 49
                    1@ == 9
                    2@ == 49
                    2@ == 9
                then
                    break
                end

                if or
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_1
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_2
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_3
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_4
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_5
                then
                    0E83: get_current_char_weaponinfo $PLAYER_ACTOR store_to 1@
                    0E89: get_weaponinfo_fire_type 1@ store_to 2@ //     
                    if or
                        2@ == 1 //  
                        2@ == 3 //   (  ..)
                    then
                        break
                    end
                end


                gosub @Eat

            else
                break
            end
            until not player.Defined(0)
            if 056D:   actor ped_1 defined
            then 01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_2 defined
            then 01C2: remove_references_to_actor ped_2 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_3 defined
            then 01C2: remove_references_to_actor ped_3 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_4 defined
            then 01C2: remove_references_to_actor ped_4 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_5 defined
            then 01C2: remove_references_to_actor ped_5 // Like turning an actor into a random pedestrian
            end
            if 03CA:   object sprite exists
            then 01C4: remove_references_to_object sprite // This object will now disappear when the player looks away
            end
            repeat
            wait 0
            until not $ACTIVE_INTERIOR == 5

0A93: terminate_this_custom_script


:Eat
    if and
        progress == 0
        0EEA: locate_char_distance_to_coordinates $PLAYER_actor pos 455.6487 -106.9869 999.5547 radius 5.0
        event == true
    then
        if and
            010A:   player $PLAYER_CHAR money > 3
            00F0:   actor $PLAYER_actor 1 near_point 455.6487 -106.9869 radius 0.6 0.6 stopped_on_foot
        then
            progress = 1
        end
    end

    if
        progress == 1
    then
        0109: player $PLAYER_CHAR money += -3
        0172: 1@ = actor ped_1 Z_angle
        1@ += 180.0
        0173: set_actor $PLAYER_ACTOR Z_angle_to 1@

        0615: define_AS_pack_begin 1@
        0812: AS_actor -1 perform_animation "ice_ped" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1
        0812: AS_actor -1 perform_animation "ice_2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1
        0616: define_AS_pack_end 1@
        0618: assign_actor $PLAYER_actor to_AS_pack 1@
        061B: remove_references_to_AS_pack 1@

        0615: define_AS_pack_begin 1@
        0812: AS_actor -1 perform_animation "restq_sell" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1
        0812: AS_actor -1 perform_animation "liquor_cas" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1
        0616: define_AS_pack_end 1@
        0618: assign_actor ped_1 to_AS_pack 1@
        061B: remove_references_to_AS_pack 1@
        progress = 2
    end

    if and
        8611:   not actor $PLAYER_actor performing_animation "ice_2"
        0611:   actor ped_1 performing_animation "restq_sell"
    then
        0613: 1@ = actor ped_1 animation "restq_sell" time
        if
            1@ > 0.35
        then
            0E31: set_render_object_visible render_S 1
        end
    end

    if and
        progress == 2
        0611:   actor $PLAYER_actor performing_animation "ice_2"
    then
        progress = 3
        timera = 0
        0226: 1@ = actor $PLAYER_actor health
        1@ += 5
        0223: set_actor $PLAYER_actor health_to 1@
        0E31: set_render_object_visible render_S 0
        model.Load(2880)
        038B: load_requested_models
        0E2E: create_render_object_to_char_bone $PLAYER_actor model 2880 bone 34 offset 0 0 0 rotation 0 0 0 store_to render_1
        0E37: set_render_object_scale render_1 0.8 0.8 0.8
        model.Destroy(2880)
    end

    if
        progress == 3
    then
        if or
            timera > 5000
            8611:   not actor $PLAYER_actor performing_animation "ice_2"
        then
            0E2F: delete_render_object render_1
            progress = 4
        end
    end

    if
        progress == 4
    then
        if
            not locate_char_distance_to_coordinates $PLAYER_actor pos 455.6487 -106.9869 999.5547 radius 2.5
        then
            progress = 0
        end
    end
return

